home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
1463.ZIP
/
DRAW-2D.ARC
/
SELOBJ.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-12-03
|
2KB
|
61 lines
PROCEDURE SELOBJ(VAR KODE:INTEGER);
VAR
XREF,YREF:REAL;
FLAG:BOOLEAN;
K:INTEGER;
MSG:SCRLINE;
OBJNUM:INTEGER;
DMIN,DIST,D:REAL;
BEGIN
KODE := 1;
DMIN := (XWMAX-XWMIN)/20.0;
MOVCUR(24,2);
WRITE('Select Object & press Left button (Right button to cancel) >');
RING(1);
FLAG := FALSE;
WHILE NOT(FLAG) DO
BEGIN
GETMOUSE(X,Y,PIXX,PIXY,OPTION);
IF (BUTTON1) OR (BUTTON2) THEN FLAG := TRUE;
IF (BUTTON1) AND (OPTION <> 0) THEN
BEGIN
FLAG := FALSE;
RING2;
MOVCUR(24,1);
WRITE(BLKLINE);
MOVCUR(24,2);
WRITE('Move mouse cursor into graphics area!!');
END;
END;
IF BUTTON1 THEN
BEGIN
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE *)
MARK(PIXX,PIXY,HRCOLOR);
M1 := 1; (* SHOW MOUSE *)
MOUSE(M1,M2,M3,M4);
XREF := X;
YREF := Y;
SELNUM := 0;
DIST := ABS(XWMAX-XWMIN);
FOR K := 1 TO OBJPTR-1 DO
WITH DRAWARY[K] DO
BEGIN
CASE OBJTYP OF
0: D := ABS(XWMAX-XWMIN); (* DEL. OBJ. *)
1: PTDIST(XREF,YREF,X1,Y1,D); (* POINT *)
2: LNDIST(XREF,YREF,X1,Y1,X2,Y2,D); (* LINE *)
3: BXDIST(XREF,YREF,X1,Y1,X2,Y2,X3,Y3,D); (* BOX *)
4: CIRDIST(XREF,YREF,X1,Y1,X2,D); (* CIRCLE *)
END; (* CASE *)
IF DIST > D THEN
BEGIN
DIST := D;
SELNUM := K;
END;
END; (*WITH*)
IF (SELNUM <> 0) AND (DIST < DMIN) THEN KODE := 0;
END; (*IF*)
MOVCUR(24,1);
WRITE(BLKLINE);
END; (*PROC*)